package com.xyx.hw0725;

import java.util.Scanner;



public class Point {
	/* 定义一个点类Point，包含2个成员变量x、y分别表示x和y坐标，
	 * 2个构造器Point()和Point(int x0,y0),以及一个movePoint（int dx,int dy）方法
	 * 实现点的位置移动。
	 * 编写一个程序，创建两个Point对象p1、p2，分别调研movePoint方法后，打印p1和p2的坐标。
	 */
	private int x;
	private int y;

	Point(){
		
	}
	//通过构造器给成员变量赋值
	Point(int x0,int y0){
		this.x=x0;
		this.y=y0;
	}
	//通过传参改变成员变量的值
	public void movePoint(int dx,int dy) {
	this.x=this.x+dx;	
	this.y=this.y+dy;
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	//因为第五题,创建一个主函数入口
public static void main(String[] args) {
	PersonCreate.tets();

}

}
/*（1）定义一个矩形类Rectangle：
1)定义三个方法：getArea()求面积、getPer()求周长，showAll()分别在控制台输出长、宽、面积、周长。
2)有2个属性：长length、宽width
3)通过构造方法Rectangle(int width, int length)，分别给两个属性赋值
*/
class Rectangle{
	private int len;
	private int height;
	private int Area;
	private int Per;
	Rectangle(int width, int length){
		this.len=width;
		this.height=length;
	}
	public void  getArea() {
		 this.Area=this.len*this.height;
		 System.out.println(Area);
		  
	}
	public void  getPer() {
		this.Per=(this.len+this.height)*2;
		System.out.println(Per);
		 
	}
	public void showAll() {
		System.out.println("Len:"+this.len);
		System.out.println("Len:"+this.height);
		System.out.println("Area:"+this.Area);
		System.out.println("Per:"+this.Per);
	}
	
}
/*定义一个笔记本类，该类有颜色（char）和cpu型号（int）两个属性。
(1)无参和有参的两个构造方法；有参构造方法可以在创建对象的同时为每个属性赋值；
(2) 输出笔记本信息的方法
然后编写一个测试类，测试笔记本类的各个方法*/
class LapTop{
	private char clo='B';
	private int cpu=70;
	LapTop(){
		
	}
	LapTop(char clo,int cpu){
		this.clo=clo;
		this.cpu=cpu;
	}
	public void printLapTop() {
		System.out.println("颜色为："+clo);
		System.out.println("cpu为："+cpu);
	}
}
/*设计一个类Student，该类包括姓名、学号和成绩。
设计一个方法，按照成绩从高到低的顺序输出姓名、学号和成绩信息。*/
 class Student2 {
	// 属性
	private String stuName;
	private String stuNo;
	private int stuScore;
	// 行为

	/**
	 * 打印学生自己的信息
	 */
	public void printMe() {
		System.out.println("姓名：" + this.getStuName() + ",学号：" + this.getStuNo() + ",成绩：" + this.getStuScore());
	}

	public Student2() {
		super();
	}

	public Student2(String stuName, String stuNo, int stuScore) {
		super();
		this.stuName = stuName;
		this.stuNo = stuNo;
		this.stuScore = stuScore;
	}

	public String getStuName() {
		return stuName;
	}

	public void setStuName(String stuName) {
		this.stuName = stuName;
	}

	public String getStuNo() {
		return stuNo;
	}

	public void setStuNo(String stuNo) {
		this.stuNo = stuNo;
	}

	public int getStuScore() {
		return stuScore;
	}

	public void setStuScore(int stuScore) {
		this.stuScore = stuScore;
	}

}
 //班主任类，驱动类
 class ClassMaster {
		// 属性
		// 学生数组【成绩单】
		private Student2[] arrStus;
		// 行为

		/**
		 * 成绩排序行为
		 */
		public void sortStuScore() {
			// 不为空，则进行排序处理
			if (arrStus != null && arrStus.length > 0) {
				// 使用冒泡排序算法，对学生成绩进行排序
				// 外层for循环
				for (int i = 0; i < arrStus.length; i++) {
					// 内层for循环
					for (int j = 0; j < arrStus.length - 1 - i; j++) {
						// 按成绩高低进行排序
						if (arrStus[j].getStuScore() < arrStus[j + 1].getStuScore()) {
							// 交换
							// 临时变量
							Student2 stuTemp = arrStus[j];
							arrStus[j] = arrStus[j + 1];
							arrStus[j + 1] = stuTemp;
						}
					}

				}
			}
		}

		/**
		 * 初始化学生名单
		 */
		public void init() {

			Scanner sc = new Scanner(System.in);
			System.out.println("请输入需要录入成绩的学生人数：");
			// 接收成员人数
			int count = sc.nextInt();
			// 初始化学生数组
			arrStus = new Student2[count];

			// for循环一次录入每个成员的信息
			for (int i = 0; i < arrStus.length; i++) {
				// 初始化父类信息
				System.out.println("请输入学生姓名：");
				String strName = sc.next();
				System.out.println("请输入学生学号：");
				String strNo = sc.next();
				System.out.println("请输入学生成绩：");
				int score = sc.nextInt();
				// 创建一个学生对象，放入学生数组中
				Student2 stu = new Student2(strName, strNo, score);
				// 存入学生数组中
				arrStus[i] = stu;
			}
		}

		/**
		 * 打印所有的学生信息【成绩从高到低排序】
		 */
		public void printAllStuInfo() {
			if (arrStus != null && arrStus.length > 0) {
				System.out.println("学生成绩信息：");
				// 打印学生名单中的学生成绩信息
				for (Student2 stu : arrStus) {
					// 打印每个学生自己的信息
					stu.printMe();
				}
			}
		}

		public ClassMaster() {
			super();
		}

		public ClassMaster(Student2[] arrStus) {
			super();
			this.arrStus = arrStus;
		}

		public Student2[] getArrStus() {
			return arrStus;
		}

		public void setArrStus(Student2[] arrStus) {
			this.arrStus = arrStus;
		}

	}

/*（1）定义一个人类Person：
1)定义一个方法sayHello()，可以向对方发出问候语“hello,my name is XXX”
2)有三个属性：名字、身高、体重
（2）定义一个PersonCreate类：
1）创建两个对象，分别是zhangsan，33岁，1.73；lishi，44，1.74
2）分别调用对象的sayHello()方法。*/
class Person{
	private String perName;
	private int	perHeight;
	private float perWeight;
	//有参构造三个属性
	public Person(String perName, int perHeight, float perWeight) {
		super();
		this.perName = perName;
		this.perHeight = perHeight;
		this.perWeight = perWeight;
	}
//输出问候语
	public void sayHello() {
		System.out.println("hello,my name is"+this.perName);
	}
} 
/**
 * @author Ming
 *详情请看Point类
 */
class PersonCreate{
public static void tets() {
	Person p1=new Person("zhangsan",33, 1.73f);
	Person p2=new Person("lishi",44,1.74f);
	p1.sayHello();
   }
}
/*．定义一个汽车类Vehicle，要求如下：
（1）属性包括：汽车品牌brand（String类型）、颜色color（String类型）和速度speed（double类型），
并且所有属性为私有。
（2）至少提供一个有参的构造方法（要求品牌和颜色可以初始化为任意值，但速度的初始值必须为0）。
（3）为私有属性提供访问器方法。注意：汽车品牌一旦初始化之后不能修改。
（4）定义一个一般方法run()，用打印语句描述汽车奔跑的功能*/
class Vehicle{
	private String brand;
	private String color;
	private double speed=0.0;

	public Vehicle() {
		
	}
	public Vehicle( String brand,String color, double speed) {
		super();
		this.color = color;
		this.speed = speed;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public double getSpeed() {
		return speed;
	}
	public void setSpeed(double speed) {
		this.speed = speed;
	}
	
	public void run() {
		System.out.println("跑的贼鸡儿快！！！");
				
	}
	
}




